package org.jeecg.modules.drive.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;

/**
 * @Description: 租户设备驱动模型
 * @Author: jeecg-boot
 * @Date:   2024-04-16
 * @Version: V1.0
 */
@Data
@TableName("iot_dev_drive_model")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="iot_dev_drive_model对象", description="租户设备驱动模型")
public class DevDriveModel implements Serializable {
    private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
	/**模型别名*/
	@Excel(name = "模型别名", width = 15)
    @ApiModelProperty(value = "模型别名")
    private java.lang.String driveAlias;
	/**驱动模型类型1库表2接口*/
	@Excel(name = "驱动模型类型1库表2接口", width = 15)
    @Dict(dicCode = "drive_model")
    @ApiModelProperty(value = "驱动模型类型1库表2接口")
    private java.lang.Integer driveType;
    /**
     * 数据库类型 mysql sqlserver
     */
    @Dict(dicCode = "database_type")
    @Excel(name = "数据库类型", width = 15, dicCode = "database_type")
    @ApiModelProperty(value = "数据库类型")
    private java.lang.String databaseType;

    //多数据源ID
    private java.lang.String dataSourceId;

	/**库表IP地址*/
	@Excel(name = "库表IP地址", width = 15)
    @ApiModelProperty(value = "库表IP地址")
    private java.lang.String driveIp;
	/**库表端口号*/
	@Excel(name = "库表端口号", width = 15)
    @ApiModelProperty(value = "库表端口号")
    private java.lang.String drivePort;
	/**库表用户名*/
	@Excel(name = "库表用户名", width = 15)
    @ApiModelProperty(value = "库表用户名")
    private java.lang.String driveUsername;
	/**库表密码*/
	@Excel(name = "库表密码", width = 15)
    @ApiModelProperty(value = "库表密码")
    private java.lang.String drivePassword;
	/**库名*/
	@Excel(name = "库名", width = 15)
    @ApiModelProperty(value = "库名")
    private java.lang.String driveDatabases;
	/**表名*/
	@Excel(name = "表名", width = 15)
    @ApiModelProperty(value = "表名")
    private java.lang.String driveTablename;
	/**设备唯一关联ID*/
	@Excel(name = "设备唯一关联ID", width = 15)
    @ApiModelProperty(value = "设备唯一关联ID")
    private java.lang.String driveUniqueId;
	/**读取设备数据1*/
	@Excel(name = "读取设备数据1", width = 15)
    @ApiModelProperty(value = "读取设备数据1")
    private java.lang.String driveReadData1;
	/**读取设备数据2*/
	@Excel(name = "读取设备数据2", width = 15)
    @ApiModelProperty(value = "读取设备数据2")
    private java.lang.String driveReadData2;
	/**读取设备数据3*/
	@Excel(name = "读取设备数据3", width = 15)
    @ApiModelProperty(value = "读取设备数据3")
    private java.lang.String driveReadData3;
	/**读取设备数据4*/
	@Excel(name = "读取设备数据4", width = 15)
    @ApiModelProperty(value = "读取设备数据4")
    private java.lang.String driveReadData4;
	/**读取设备数据5*/
	@Excel(name = "读取设备数据5", width = 15)
    @ApiModelProperty(value = "读取设备数据5")
    private java.lang.String driveReadData5;
	/**读取设备数据6*/
	@Excel(name = "读取设备数据6", width = 15)
    @ApiModelProperty(value = "读取设备数据6")
    private java.lang.String driveReadData6;
	/**读取设备数据7*/
	@Excel(name = "读取设备数据7", width = 15)
    @ApiModelProperty(value = "读取设备数据7")
    private java.lang.String driveReadData7;
	/**登录服务地址及端口*/
	@Excel(name = "登录服务地址及端口", width = 15)
    @ApiModelProperty(value = "登录服务地址及端口")
    private java.lang.String driveLoginHostPort;
	/**登录提交方式POSTGET*/
	@Excel(name = "登录提交方式POSTGET", width = 15)
    @Dict(dicCode = "data_submit_model")
    @ApiModelProperty(value = "登录提交方式POSTGET")
    private java.lang.String driveLoginPost;
	/**登录接口地址*/
	@Excel(name = "登录接口地址", width = 15)
    @ApiModelProperty(value = "登录接口地址")
    private java.lang.String driveLoginApi;
	/**接口登录用户名字段名*/
	@Excel(name = "接口登录用户名字段名", width = 15)
    @ApiModelProperty(value = "接口登录用户名字段名")
    private java.lang.String driveApiUserkey;
    /**接口登录用户名*/
    @Excel(name = "接口登录用户名", width = 15)
    @ApiModelProperty(value = "接口登录用户名")
    private java.lang.String driveApiUsername;
	/**接口登录密码字段名*/
	@Excel(name = "接口登录密码字段名", width = 15)
    @ApiModelProperty(value = "接口登录密码字段名")
    private java.lang.String driveApiPwdkey;
    /**接口登录密码*/
	@Excel(name = "接口登录密码", width = 15)
    @ApiModelProperty(value = "接口登录密码")
    private java.lang.String driveApiPassword;
	/**返回数据类型JSON*/
	@Excel(name = "返回数据类型JSON", width = 15)
    @ApiModelProperty(value = "返回数据类型JSON")
    private java.lang.String driveResultType;
	/**返回数据状态Key*/
	@Excel(name = "返回数据状态Key", width = 15)
    @ApiModelProperty(value = "返回数据状态Key")
    private java.lang.String driveResultStatus;
	/**返回数据消息Key*/
	@Excel(name = "返回数据消息Key", width = 15)
    @ApiModelProperty(value = "返回数据消息Key")
    private java.lang.String driveResultMessage;
	/**返回数据结果Key*/
	@Excel(name = "返回数据结果Key", width = 15)
    @ApiModelProperty(value = "返回数据结果Key")
    private java.lang.String driveResultData;
	/**返回数据结果令牌Key*/
	@Excel(name = "返回数据结果令牌Key", width = 15)
    @ApiModelProperty(value = "返回数据结果令牌Key")
    private java.lang.String driveResultDataKey;

    // 令牌值
    private String accessToken;
    // 令牌过期时间
    private String expireTime;
    // 令牌开始计时时间点
    private String accessTime;
    // 监控设备直连播放地址
    private String playAddress;

	/**读取设备实时数据接口 / 监控设备直连播放地址*/
	@Excel(name = "读取设备实时数据接口", width = 15)
    @ApiModelProperty(value = "读取设备实时数据接口")
    private java.lang.String driveRealtimeApi;
	/**读取设备历史数据接口*/
	@Excel(name = "读取设备历史数据接口", width = 15)
    @ApiModelProperty(value = "读取设备历史数据接口")
    private java.lang.String driveHistoryApi;
	/**数据提交方式*/
	@Excel(name = "数据提交方式", width = 15)
    @Dict(dicCode = "data_submit_model")
    @ApiModelProperty(value = "数据提交方式")
    private java.lang.String apiPost;
	/**提交令牌的Key*/
	@Excel(name = "提交令牌的Key", width = 15)
    @ApiModelProperty(value = "提交令牌的Key")
    private java.lang.String apiTokenKey;
	/**请求设备Key*/
	@Excel(name = "请求设备Key", width = 15)
    @ApiModelProperty(value = "请求设备Key")
    private java.lang.String apiUniqueId;
	/**请求开始时间*/
	@Excel(name = "请求开始时间", width = 15)
    @ApiModelProperty(value = "请求开始时间")
    private java.lang.String apiStarttime;
	/**请求结束时间*/
	@Excel(name = "请求结束时间", width = 15)
    @ApiModelProperty(value = "请求结束时间")
    private java.lang.String apiEndtime;
	/**显示行数*/
	@Excel(name = "显示行数", width = 15)
    @ApiModelProperty(value = "显示行数")
    private java.lang.Integer apiPageSize;
	/**页码*/
	@Excel(name = "页码", width = 15)
    @ApiModelProperty(value = "页码")
    private java.lang.Integer apiPageNo;
	/**返回状态码key*/
	@Excel(name = "返回状态码key", width = 15)
    @ApiModelProperty(value = "返回状态码key")
    private java.lang.String apiResultStatus;
	/**返回消息key*/
	@Excel(name = "返回消息key", width = 15)
    @ApiModelProperty(value = "返回消息key")
    private java.lang.String apiResultMessage;
	/**返回数据集key*/
	@Excel(name = "返回数据集key", width = 15)
    @ApiModelProperty(value = "返回数据集key")
    private java.lang.String apiResultData;
	/**读取设备唯一Key*/
	@Excel(name = "读取设备唯一Key", width = 15)
    @ApiModelProperty(value = "读取设备唯一Key")
    private java.lang.String apiResultUniqueId;
	/**读取设备数据1*/
	@Excel(name = "读取设备数据1", width = 15)
    @ApiModelProperty(value = "读取设备数据1")
    private java.lang.String apiResultReadData1;
	/**读取设备数据2*/
	@Excel(name = "读取设备数据2", width = 15)
    @ApiModelProperty(value = "读取设备数据2")
    private java.lang.String apiResultReadData2;
	/**读取设备数据3*/
	@Excel(name = "读取设备数据3", width = 15)
    @ApiModelProperty(value = "读取设备数据3")
    private java.lang.String apiResultReadData3;
	/**读取设备数据4*/
	@Excel(name = "读取设备数据4", width = 15)
    @ApiModelProperty(value = "读取设备数据4")
    private java.lang.String apiResultReadData4;
	/**读取设备数据5*/
	@Excel(name = "读取设备数据5", width = 15)
    @ApiModelProperty(value = "读取设备数据5")
    private java.lang.String apiResultReadData5;
	/**读取设备数据6*/
	@Excel(name = "读取设备数据6", width = 15)
    @ApiModelProperty(value = "读取设备数据6")
    private java.lang.String apiResultReadData6;
	/**读取设备数据7*/
	@Excel(name = "读取设备数据7", width = 15)
    @ApiModelProperty(value = "读取设备数据7")
    private java.lang.String apiResultReadData7;


    /**读取数据设备种类*/
    @Dict(dicCode = "read_drive_type")
    @ApiModelProperty(value = "读取数据设备种类")
    private java.lang.String readDataType1;
    /**读取数据设备种类*/
    @Dict(dicCode = "read_drive_type")
    @ApiModelProperty(value = "读取数据设备种类")
    private java.lang.String readDataType2;
    /**读取数据设备种类*/
    @Dict(dicCode = "read_drive_type")
    @ApiModelProperty(value = "读取数据设备种类")
    private java.lang.String readDataType3;
    /**读取数据设备种类*/
    @Dict(dicCode = "read_drive_type")
    @ApiModelProperty(value = "读取数据设备种类")
    private java.lang.String readDataType4;
    /**读取数据设备种类*/
    @Dict(dicCode = "read_drive_type")
    @ApiModelProperty(value = "读取数据设备种类")
    private java.lang.String readDataType5;
    /**读取数据设备种类*/
    @Dict(dicCode = "read_drive_type")
    @ApiModelProperty(value = "读取数据设备种类")
    private java.lang.String readDataType6;
    /**读取数据设备种类*/
    @Dict(dicCode = "read_drive_type")
    @ApiModelProperty(value = "读取数据设备种类")
    private java.lang.String readDataType7;

	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
	/**是否删除*/
	@Excel(name = "是否删除", width = 15)
    @ApiModelProperty(value = "是否删除")
    @TableLogic
    private java.lang.Integer delFlag;
	/**租户*/
	@Excel(name = "租户", width = 15)
    @ApiModelProperty(value = "租户")
    private java.lang.String tenantId;
}
